package sim_interface.element.animaux;


import sim_interface.element.VivantAffiche;
import sim_interface.element.vegetal.VegetalAffiche;

public class AnimalAffiche extends VivantAffiche {

	public final static float SEUIL_DE_REPOS = 5f;
	public final static float SEUIL_DE_FAMINE = 4f;
	public final static float SEUIL_DE_FAIM = 8f;
	public final static float SEUIL_DE_FATIGUE = 8f;
	public final static float DISCRIMINATEUR_FATIGUE_VIE = 15f;
	public final static float SEUIL_EPUISEMENT = 14f;

	public final static float COUT_PAR_PAS_DE_TEMPS = 0.05f;
	public final static float COUT_DEPLACEMENT = 0.25f;
	public final static float COUT_REPOS = 0.1f;
	public final static float FATIGUE_PAR_DEPLACEMENT = 0.3f;
	public final static float REPOS_PAR_PAS_DE_TEMPS = 1f;
	public final static float ENERGIE_PAR_VEGETAL = 0.3f;
	public final static float FATIGUE_POUR_MANGER = 0.2f;
	public final static float FATIGUE_POUR_MARCHER = 1f;
	public final static float FATIGUE_POUR_REPOS = -2f;

	public final static float ENERGIE_PAR_PAS_DE_TEMPS = 1;

	public final static int RANDOM_DISCRIMINATEUR_POUR_MARCHER = 0;
	public final static int RANDOM_DISCRIMINATEUR_POUR_REPOSER = 1;
	public final static int RANDOM_DISCRIMINATEUR_POUR_MANGER = 2;

	private float fatigue;

	public AnimalAffiche(String name, float vitalite) {
		super(name, vitalite);
		fatigue = 0;// l'animal part en pleine forme
	}

	private void determineEtat() {
		// Les états sont classés par ordre de priorité
		// Les écrasements d'états sont voulus!

		etat = Etat.VIVANT;
		if (fatigue > SEUIL_DE_FATIGUE)
			etat = Etat.ANIMAL_FATIGUE;
		if (vie < SEUIL_DE_FAIM)
			etat = Etat.ANIMAL_FRINGALE;
		if (vie < SEUIL_DE_FAMINE)
			etat = Etat.ANIMAL_AFFAME;
		if (fatigue > SEUIL_EPUISEMENT)
			etat = Etat.ANIMAL_EPUISE;
		if (vie < 0)
			etat = Etat.MORT;
	}

	public void meurt() {
		action = Action.MOURIR;
		etat = Etat.MORT;
		vie = -1.0f;
	}

	public String toString() {
		return super.toString() + "fatigue:" + fatigue + "\n";
	}

	@Override
	public boolean vit(long step) {
		// TODO Auto-generated method stub
		return false;
	}

}